package cn.iocoder.yudao.module.mqtt.service.devicelatestflowlog;

import java.util.*;

import cn.iocoder.yudao.module.mqtt.dal.dataobject.devicelatestflow.DeviceLatestFlowDO;
import jakarta.validation.*;
import cn.iocoder.yudao.module.mqtt.controller.admin.devicelatestflowlog.vo.*;
import cn.iocoder.yudao.module.mqtt.dal.dataobject.devicelatestflowlog.DeviceLatestFlowLogDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;

/**
 * 水量日志 Service 接口
 *
 * @author 管理员
 */
public interface DeviceLatestFlowLogService {

    /**
     * 创建水量日志
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createDeviceLatestFlowLog(@Valid DeviceLatestFlowLogSaveReqVO createReqVO);

    /**
     *
     * @param waterFlowDO
     * @param sunFlowDO
     * @return
     */
    Long createDeviceLatestFlowLog(DeviceLatestFlowDO waterFlowDO, DeviceLatestFlowDO sunFlowDO);

    /**
     * 更新水量日志
     *
     * @param updateReqVO 更新信息
     */
    void updateDeviceLatestFlowLog(@Valid DeviceLatestFlowLogSaveReqVO updateReqVO);

    /**
     * 删除水量日志
     *
     * @param id 编号
     */
    void deleteDeviceLatestFlowLog(Long id);

    /**
    * 批量删除水量日志
    *
    * @param ids 编号
    */
    void deleteDeviceLatestFlowLogListByIds(List<Long> ids);

    /**
     * 获得水量日志
     *
     * @param id 编号
     * @return 水量日志
     */
    DeviceLatestFlowLogDO getDeviceLatestFlowLog(Long id);

    /**
     * 获得水量日志分页
     *
     * @param pageReqVO 分页查询
     * @return 水量日志分页
     */
    PageResult<DeviceLatestFlowLogDO> getDeviceLatestFlowLogPage(DeviceLatestFlowLogPageReqVO pageReqVO);

}